]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
keyboardManager: take group index into account when preserving keymap
authorRay Strode <rstrode@redhat.com>
Fri, 4 May 2018 21:45:19 +0000 (17:45 -0400)
committerRay Strode <halfline@gmail.com>
Tue, 8 May 2018 17:54:37 +0000 (17:54 +0000)
commit 642107a2 attempts to avoid resetting the current keymap on
spurious input source changes.

It does this by checking if the current layout id is found in
the new list of layouts and resetting the current layout to the
associated match in the list. By not nullifying the current
layout, it won't get subsequently reset.

Unfortunately, if the order of the list changes, resetting the
current keymap is still necessary, since the order corresponds
with the index of the activated group.

This commit changes the code to nullify the current layout if
its group index changes.

https://bugzilla.redhat.com/show_bug.cgi?id=1573923

js/misc/keyboardManager.js

index 3f0bad282ec82de4800db1d332dcc9a630f057dd..ae59f00149063a01df3807bc909b8f7838740639 100644 (file)
@@ -90,6 +90,7 @@ var KeyboardManager = new Lang.Class({
 
     setUserLayouts(ids) {
         let currentId = this._current ? this._current.id : null;
+        let currentGroupIndex = this._current ? this._current.groupIndex : null;
         this._current = null;
         this._layoutInfos = {};
 
@@ -116,7 +117,7 @@ var KeyboardManager = new Lang.Class({
             info.group = group;
             info.groupIndex = groupIndex;
 
-            if (id == currentId)
+            if (currentId == id && currentGroupIndex == groupIndex)
                 this._current = info;
 
             i += 1;